/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladora;

import collection.CollectionCliente;
import entity.Cliente;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import modelInterface.IAutentica;
import presenter.LoginPresenter;

/**
 *
 * @author jakson
 */
public class AutenticaCliente implements IAutentica {

    Cliente C = new Cliente("", "", "", "", "", "", "", "");
    private ArrayList<Cliente> clientes = new ArrayList<Cliente>();
    private collection.CollectionCliente cli = new CollectionCliente();

    public Cliente buscarUsuario(String usuario) {

        Cliente C = new Cliente("", "", "", "", "", "", "", "");
        try {
            for (int i = 0; i < cli.getClientes().size(); i++) {
                if (cli.getClientes().get(i).getUsuario().equals(usuario)) {
                    C = cli.getClientes().get(i);
                }

            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return C;
    }

    @Override
    public boolean autenticaUsuario(String usuario, String senha) {

        Cliente C = new Cliente("", "", "", "", "", "", "", "");
        C = buscarUsuario(usuario);
        if (C.getSenha().compareTo("") == 0) {
            senha = JOptionPane.showInputDialog(null, "Informe uma senha", "Cadastro de Senha", 0);
            C.setSenha(senha);
            cli.editarCliente(C);
            return true;
        } else if (C.getSenha().compareTo(senha) == 0) {
            return true;

        }


        return false;
    }

    @Override
    public boolean autentica(String usuario, String senha) {

        if (usuario.compareTo("") == 0) {
            JOptionPane.showMessageDialog(null, "Preencha os Campos para efetuar Login");
            return false;

        }
        C = buscarUsuario(usuario);
        if ((buscarUsuario(usuario)).getSenha().equals("bloqueada")) {
            JOptionPane.showMessageDialog(null, "USUARIO BLOQUEADO");
            return false;
        } else if ((buscarUsuario(usuario)).getUsuario().equals(usuario)) {
            for (int i = 1; i <= 3; i++) {
                if ((autenticaUsuario(usuario, senha)) == true) {
                    return true;
                } else {
                    senha = JOptionPane.showInputDialog(null, "Informe novamente" + "              Tent.: " + i, "Senha Incorreta", 0);
                }
            }

            C.setSenha("bloqueada");
            cli.editacao(C);
            JOptionPane.showMessageDialog(null, "Você Excedeu o número de Tentativas!, sua senha foi bloqueada");

            return false;
        } else {
            JOptionPane.showMessageDialog(null, "USUARIO NÃO ENCONTADO");
        }

        return false;
    }
}
